#pragma once

#include <algorithm/analytical_model/algorithm/cuda/inter_op/Data.h>

// #include <tuple>

namespace solar::cpu
{
    auto isInsideCylinder(const solar::cuda::inter_op::Float3& orig,
                          const solar::cuda::inter_op::Float3& size,
                          const solar::cuda::inter_op::Float3& pos) -> bool;
    auto getFocusCenter(const solar::cuda::inter_op::Float3& heliostat_position,
                        const solar::cuda::inter_op::Float3& size,
                        const solar::cuda::inter_op::Float3& pos) -> solar::cuda::inter_op::Float3;
    // auto cylinderIntersect(const Float3& orig, const Float3& dir, const Float3& size,
    //                        const Float3& pos) -> std::tuple<float, float, float, bool>;
} // namespace solar::cpu
